#ifndef PICKGUTS_H
#define PICKGUTS_H

#include "vpguts.h"

class PickEmGuts : public VPGuts
{
	public:
		PickEmGuts(uint8 MinPairCard, PayFreqType,
			int32* payTable, int32 maxCols, int32 maxEvents);

		virtual Shue* newShue(const ShueGameInfo &sgi);
		virtual CardMgr* getCardMgr();

		virtual void dealHand(Shue*, VPHand*);
		virtual void makeDealtHandForClient(VPHand*, VPHand*);
		virtual void rollbackDeal(Shue*, VPHand*);

		virtual bool8 isHoldTheseValid(uint8 held);

		virtual void drawHand(uint8 held, Shue*, VPHand*);
		virtual void rollbackDraw(uint8 held, Shue*, VPHand*);

		virtual int32 CalcPayout(int32* pEvent, VPHand* pHand, int32 bet,
			CalcPayoutMode, uint8* subGameData, int32 length);

		virtual void restoreHand(Shue*, VPHand*, VPokerSavedGame*);

		virtual uint8 restoreHeldCards(uint8* dealt, uint8* drawn, int32 num);

	protected:
		int32 classifyHandWithGroups(VPHand*);
		int32 classifyHand(VPHand*);

	protected:
		uint8 minPair;
};

inline
PickEmGuts::PickEmGuts(uint8 MinPairCard, PayFreqType payFreq,
	int32* payTable, int32 maxCols, int32 maxEvents)
		: VPGuts(payFreq, payTable, maxCols, maxEvents)
{
	minPair = MinPairCard;
}

#endif
